#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "parser.h"

/**
Fonctions qui vont regarder une ligne correspndant a un terminal et retourner son absisse/ordonnees
*/
double trouver_absisse(char* ligne){
  char temp1[3];
  temp1[0] = ligne[7];
  temp1[1] = ligne[8];
  temp1[2] = ligne[9];

  return (double)atoi(temp1);
}

double trouver_ordonnees(char* ligne){
  char temp2[3];
  temp2[0] = ligne[13];
  temp2[1] = ligne[14];
  temp2[2] = ligne[15];

  return (double)atoi(temp2);
}

/**
Fonction qui va ouvrire un fichier passé en parametre et le retranscrire dans un tableau de lignes.
**/
int remplir_lignes(char lignes[NB_LIGNES_MAX][TAILLE_LIGNES_MAX],char lien[TAILLE_NOM_MAX]){
  FILE* fichier = NULL;
  fichier = fopen(lien,"r");
  if (fichier!=NULL){
    int i = 0;
    do{
      i++;
    }while((fgets(lignes[i-1],TAILLE_LIGNES_MAX,fichier)!=NULL));
    fclose(fichier);
    return i-1;
  }
  else{
    printf("Impossible d'ouvrir le fichier\n");
    return 0;
  }
}

/**
Fonctions qui va remplir un graphe a partir des lignes récupérées dans un fichier.
**/
void creer_graphe(int** liens,int** distances,int nb_terminaux,char lignes[NB_LIGNES_MAX][TAILLE_LIGNES_MAX]){
  double absisses[nb_terminaux];
  double ordonnees[nb_terminaux];
  int a;
  
  for(a=0;a<nb_terminaux;a++){
    absisses[a]=trouver_absisse(lignes[a]);
    ordonnees[a]=trouver_ordonnees(lignes[a]);
  }
  int j;
  for(a=0;a<nb_terminaux;a++)
    for(j=0;j<nb_terminaux;j++){
      liens[a][j]=0;
      distances[a][j]=(int)sqrt((absisses[a]-absisses[j])*(absisses[a]-absisses[j])+(ordonnees[a]-ordonnees[j])*(ordonnees[a]-ordonnees[j]));
    }

}
